package com.hsh.utils;
/**
 * @author xrkhy
 * @date 2025/6/27 11:24
 * @description
 */

import com.alibaba.fastjson2.JSON;


/**
 * FastJSON 工具类
 * 用于快速生成标准化的 JSON 响应
 */
public class JsonResultUtil {

    /**
     * 生成 JSON 字符串
     * @param code  状态码 (如 200, 404)
     * @param msg   提示信息 (如 "操作成功")
     * @param data  业务数据 (任意 Java 对象)
     * @return 标准化的 JSON 字符串
     */
    public static String buildResult(int code, String msg, Object data) {
        // 创建响应对象（FastJSON 会自动序列化）
        ResponseResult result = new ResponseResult(code, msg, data);

        // 配置序列化特性：美化输出 + 空值保留字段
        return JSON.toJSONString(result);
    }

    /**
     * 内部响应实体类
     */
    private static class ResponseResult {
        private int code;    // 状态码
        private String msg;  // 消息文本
        private Object data; // 业务数据

        public ResponseResult(int code, String msg, Object data) {
            this.code = code;
            this.msg = msg;
            this.data = data;
        }

        // Getter 方法（FastJSON 序列化依赖）
        public int getCode() {
            return code;
        }

        public String getMsg() {
            return msg;
        }

        public Object getData() {
            return data;
        }
    }
}